<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class SimpleNoticeMessage implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $message;
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($message)
    {
        $this->message = $message;
    }

    /**
     * 获取事件应广播的频道.
     * 频道应该是 Channel、PrivateChannel 或 PresenceChannel 的实例。 Channel 的实例代表任何用户都可以订阅的公共频道，而 PrivateChannels 和 PresenceChannels 代表需要 频道授权 的私人频道：
     * 我的理解就是需要发送给谁
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new Channel('test');
    }
    /**
     * 事件的广播名称。（事件名称）
     * 可选
     * 如果没定义事件名称，则在客户端监听事件的时候填写的是 类名，即SimpleNoticeMessage
     * 如果定义了 则未 .server.admin.notice，注意最前面有个 .
     * @return string
     */
    public function broadcastAs()
    {
        return 'server.test.notice';
    }
}
